package cn.com.anysdk.starter.config.sms;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 阿里云短信相关配置属性类。
 * <p>
 * 通过 application.yml 或 application.properties 配置前缀为 anysdk.sms.aliyun 的属性进行注入。
 * </p>
 */
@ConfigurationProperties(prefix = "anysdk.sms.aliyun")
public class AliyunSmsProperties {
    /** 是否启用阿里云短信服务 */
    private boolean enable = false;
    /** 阿里云 AccessKeyId */
    private String accessKeyId;
    /** 阿里云 AccessKeySecret */
    private String accessKeySecret;
    /** 短信签名（如：阿里云控制台已审核通过的签名） */
    private String signName;
    /** 区域ID，默认 cn-hangzhou */
    private String regionId = "cn-hangzhou";
    /** 默认短信模板ID（可选） */
    private String defaultTemplateId;
    /** 阿里云短信服务 endpoint（可选，部分场景下需指定） */
    private String endpoint;

    // Enable getter/setter
    public boolean isEnable() {
        return enable;
    }
    public void setEnable(boolean enable) {
        this.enable = enable;
    }

    // AccessKeyId getter/setter
    public String getAccessKeyId() {
        return accessKeyId;
    }
    public void setAccessKeyId(String accessKeyId) {
        this.accessKeyId = accessKeyId;
    }

    // AccessKeySecret getter/setter
    public String getAccessKeySecret() {
        return accessKeySecret;
    }
    public void setAccessKeySecret(String accessKeySecret) {
        this.accessKeySecret = accessKeySecret;
    }

    // SignName getter/setter
    public String getSignName() {
        return signName;
    }
    public void setSignName(String signName) {
        this.signName = signName;
    }

    // RegionId getter/setter
    public String getRegionId() {
        return regionId;
    }
    public void setRegionId(String regionId) {
        this.regionId = regionId;
    }

    // DefaultTemplateId getter/setter
    public String getDefaultTemplateId() {
        return defaultTemplateId;
    }
    public void setDefaultTemplateId(String defaultTemplateId) {
        this.defaultTemplateId = defaultTemplateId;
    }

    // Endpoint getter/setter
    public String getEndpoint() {
        return endpoint;
    }
    public void setEndpoint(String endpoint) {
        this.endpoint = endpoint;
    }
}
